//
//	GetInterviewedListList.m
//	Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport



#import "GetInterviewedListList.h"

NSString *const kGetInterviewedListListCompanyAddress = @"companyAddress";
NSString *const kGetInterviewedListListCompanyName = @"companyName";
NSString *const kGetInterviewedListListContact = @"contact";
NSString *const kGetInterviewedListListContactPhone = @"contactPhone";
NSString *const kGetInterviewedListListHasFeedback = @"hasFeedback";
NSString *const kGetInterviewedListListInterviewAddress = @"interviewAddress";
NSString *const kGetInterviewedListListInterviewConfirmSatus = @"interviewConfirmSatus";
NSString *const kGetInterviewedListListInterviewId = @"interviewId";
NSString *const kGetInterviewedListListInterviewTime = @"interviewTime";
NSString *const kGetInterviewedListListInterviewResult = @"interviewResult";
NSString *const kGetInterviewedListListLogo = @"logo";
NSString *const kGetInterviewedListListMatchScore = @"matchScore";
NSString *const kGetInterviewedListListNature = @"nature";
NSString *const kGetInterviewedListListPositionId = @"positionId";
NSString *const kGetInterviewedListListPositionName = @"positionName";
NSString *const kGetInterviewedListListReleasedInterviewExperience = @"releasedInterviewExperience";
NSString *const kGetInterviewedListListSalaryRange = @"salaryRange";
NSString *const kGetInterviewedListListSkills = @"skills";
NSString *const kGetInterviewedListListWorkingLife = @"workingLife";
NSString *const kGetInterviewedListListHasVideoAnswer = @"hasVideoAnswer";



@interface GetInterviewedListList ()
@end
@implementation GetInterviewedListList




/**
 * Instantiate the instance using the passed dictionary values to set the properties values
 */

-(instancetype)initWithDictionary:(NSDictionary *)dictionary
{
	self = [super init];
	if(![dictionary[kGetInterviewedListListCompanyAddress] isKindOfClass:[NSNull class]]){
		self.companyAddress = dictionary[kGetInterviewedListListCompanyAddress];
	}	
	if(![dictionary[kGetInterviewedListListCompanyName] isKindOfClass:[NSNull class]]){
		self.companyName = dictionary[kGetInterviewedListListCompanyName];
	}	
	if(![dictionary[kGetInterviewedListListContact] isKindOfClass:[NSNull class]]){
		self.contact = dictionary[kGetInterviewedListListContact];
	}	
	if(![dictionary[kGetInterviewedListListContactPhone] isKindOfClass:[NSNull class]]){
		self.contactPhone = dictionary[kGetInterviewedListListContactPhone];
	}	
	if(![dictionary[kGetInterviewedListListHasFeedback] isKindOfClass:[NSNull class]]){
		self.hasFeedback = [dictionary[kGetInterviewedListListHasFeedback] integerValue];
	}

	if(![dictionary[kGetInterviewedListListInterviewAddress] isKindOfClass:[NSNull class]]){
		self.interviewAddress = dictionary[kGetInterviewedListListInterviewAddress];
	}	
	if(![dictionary[kGetInterviewedListListInterviewConfirmSatus] isKindOfClass:[NSNull class]]){
		self.interviewConfirmSatus = [dictionary[kGetInterviewedListListInterviewConfirmSatus] integerValue];
	}

	if(![dictionary[kGetInterviewedListListInterviewId] isKindOfClass:[NSNull class]]){
		self.interviewId = [dictionary[kGetInterviewedListListInterviewId] integerValue];
	}

	if(![dictionary[kGetInterviewedListListInterviewTime] isKindOfClass:[NSNull class]]){
		self.interviewTime = dictionary[kGetInterviewedListListInterviewTime];
	}
	if(![dictionary[kGetInterviewedListListInterviewResult] isKindOfClass:[NSNull class]]){
		self.interviewResult = dictionary[kGetInterviewedListListInterviewResult];
	}	
	if(![dictionary[kGetInterviewedListListLogo] isKindOfClass:[NSNull class]]){
		self.logo = dictionary[kGetInterviewedListListLogo];
	}	
	if(![dictionary[kGetInterviewedListListMatchScore] isKindOfClass:[NSNull class]]){
		self.matchScore = [dictionary[kGetInterviewedListListMatchScore] floatValue];
	}

	if(![dictionary[kGetInterviewedListListNature] isKindOfClass:[NSNull class]]){
		self.nature = dictionary[kGetInterviewedListListNature];
	}	
	if(![dictionary[kGetInterviewedListListPositionId] isKindOfClass:[NSNull class]]){
		self.positionId = [dictionary[kGetInterviewedListListPositionId] integerValue];
	}
	if(![dictionary[kGetInterviewedListListPositionName] isKindOfClass:[NSNull class]]){
		self.positionName = dictionary[kGetInterviewedListListPositionName];
	}	
	if(![dictionary[kGetInterviewedListListReleasedInterviewExperience] isKindOfClass:[NSNull class]]){
		self.releasedInterviewExperience = [dictionary[kGetInterviewedListListReleasedInterviewExperience] boolValue];
	}

	if(![dictionary[kGetInterviewedListListSalaryRange] isKindOfClass:[NSNull class]]){
		self.salaryRange = dictionary[kGetInterviewedListListSalaryRange];
	}	
	if(dictionary[kGetInterviewedListListSkills] != nil && [dictionary[kGetInterviewedListListSkills] isKindOfClass:[NSArray class]]){
		NSArray * skillsDictionaries = dictionary[kGetInterviewedListListSkills];
		NSMutableArray * skillsItems = [NSMutableArray array];
		for(NSDictionary * skillsDictionary in skillsDictionaries){
			GetInterviewedListSkill * skillsItem = [[GetInterviewedListSkill alloc] initWithDictionary:skillsDictionary];
			[skillsItems addObject:skillsItem];
		}
		self.skills = skillsItems;
	}
	if(![dictionary[kGetInterviewedListListWorkingLife] isKindOfClass:[NSNull class]]){
		self.workingLife = dictionary[kGetInterviewedListListWorkingLife];
	}
    if(![dictionary[kGetInterviewedListListHasVideoAnswer] isKindOfClass:[NSNull class]]){
        self.hasVideoAnswer = [dictionary[kGetInterviewedListListHasVideoAnswer] integerValue];
    }
	return self;
}


/**
 * Returns all the available property values in the form of NSDictionary object where the key is the approperiate json key and the value is the value of the corresponding property
 */
-(NSDictionary *)toDictionary
{
	NSMutableDictionary * dictionary = [NSMutableDictionary dictionary];
	if(self.companyAddress != nil){
		dictionary[kGetInterviewedListListCompanyAddress] = self.companyAddress;
	}
	if(self.companyName != nil){
		dictionary[kGetInterviewedListListCompanyName] = self.companyName;
	}
	if(self.contact != nil){
		dictionary[kGetInterviewedListListContact] = self.contact;
	}
	if(self.contactPhone != nil){
		dictionary[kGetInterviewedListListContactPhone] = self.contactPhone;
	}
	dictionary[kGetInterviewedListListHasFeedback] = @(self.hasFeedback);
	if(self.interviewAddress != nil){
		dictionary[kGetInterviewedListListInterviewAddress] = self.interviewAddress;
	}
	dictionary[kGetInterviewedListListInterviewConfirmSatus] = @(self.interviewConfirmSatus);
	dictionary[kGetInterviewedListListInterviewId] = @(self.interviewId);
	if(self.interviewTime != nil){
		dictionary[kGetInterviewedListListInterviewTime] = self.interviewTime;
	}
	if(self.interviewResult != nil){
		dictionary[kGetInterviewedListListInterviewResult] = self.interviewResult;
	}
	if(self.logo != nil){
		dictionary[kGetInterviewedListListLogo] = self.logo;
	}
	dictionary[kGetInterviewedListListMatchScore] = @(self.matchScore);
	if(self.nature != nil){
		dictionary[kGetInterviewedListListNature] = self.nature;
	}
	dictionary[kGetInterviewedListListPositionId] = @(self.positionId);
	if(self.positionName != nil){
		dictionary[kGetInterviewedListListPositionName] = self.positionName;
	}
	dictionary[kGetInterviewedListListReleasedInterviewExperience] = @(self.releasedInterviewExperience);
	if(self.salaryRange != nil){
		dictionary[kGetInterviewedListListSalaryRange] = self.salaryRange;
	}
	if(self.skills != nil){
		NSMutableArray * dictionaryElements = [NSMutableArray array];
		for(GetInterviewedListSkill * skillsElement in self.skills){
			[dictionaryElements addObject:[skillsElement toDictionary]];
		}
		dictionary[kGetInterviewedListListSkills] = dictionaryElements;
	}
	if(self.workingLife != nil){
		dictionary[kGetInterviewedListListWorkingLife] = self.workingLife;
	}
    dictionary[kGetInterviewedListListHasVideoAnswer] = @(self.hasVideoAnswer);

	return dictionary;

}

/**
 * Implementation of NSCoding encoding method
 */
/**
 * Returns all the available property values in the form of NSDictionary object where the key is the approperiate json key and the value is the value of the corresponding property
 */
- (void)encodeWithCoder:(NSCoder *)aCoder
{
	if(self.companyAddress != nil){
		[aCoder encodeObject:self.companyAddress forKey:kGetInterviewedListListCompanyAddress];
	}
	if(self.companyName != nil){
		[aCoder encodeObject:self.companyName forKey:kGetInterviewedListListCompanyName];
	}
	if(self.contact != nil){
		[aCoder encodeObject:self.contact forKey:kGetInterviewedListListContact];
	}
	if(self.contactPhone != nil){
		[aCoder encodeObject:self.contactPhone forKey:kGetInterviewedListListContactPhone];
	}
	[aCoder encodeObject:@(self.hasFeedback) forKey:kGetInterviewedListListHasFeedback];	if(self.interviewAddress != nil){
		[aCoder encodeObject:self.interviewAddress forKey:kGetInterviewedListListInterviewAddress];
	}
	[aCoder encodeObject:@(self.interviewConfirmSatus) forKey:kGetInterviewedListListInterviewConfirmSatus];
    [aCoder encodeObject:@(self.interviewId) forKey:kGetInterviewedListListInterviewId];
    if(self.interviewTime != nil){
		[aCoder encodeObject:self.interviewTime forKey:kGetInterviewedListListInterviewTime];
	}
	if(self.interviewResult != nil){
		[aCoder encodeObject:self.interviewResult forKey:kGetInterviewedListListInterviewResult];
	}
	if(self.logo != nil){
		[aCoder encodeObject:self.logo forKey:kGetInterviewedListListLogo];
	}
	[aCoder encodeObject:@(self.matchScore) forKey:kGetInterviewedListListMatchScore];	if(self.nature != nil){
		[aCoder encodeObject:self.nature forKey:kGetInterviewedListListNature];
	}
	[aCoder encodeObject:@(self.positionId) forKey:kGetInterviewedListListPositionId];
    if(self.positionName != nil){
		[aCoder encodeObject:self.positionName forKey:kGetInterviewedListListPositionName];
	}
	[aCoder encodeObject:@(self.releasedInterviewExperience) forKey:kGetInterviewedListListReleasedInterviewExperience];
    if(self.salaryRange != nil){
		[aCoder encodeObject:self.salaryRange forKey:kGetInterviewedListListSalaryRange];
	}
	if(self.skills != nil){
		[aCoder encodeObject:self.skills forKey:kGetInterviewedListListSkills];
	}
	if(self.workingLife != nil){
		[aCoder encodeObject:self.workingLife forKey:kGetInterviewedListListWorkingLife];
	}
    [aCoder encodeObject:@(self.hasVideoAnswer) forKey:kGetInterviewedListListHasVideoAnswer];

}

/**
 * Implementation of NSCoding initWithCoder: method
 */
- (instancetype)initWithCoder:(NSCoder *)aDecoder
{
	self = [super init];
	self.companyAddress = [aDecoder decodeObjectForKey:kGetInterviewedListListCompanyAddress];
	self.companyName = [aDecoder decodeObjectForKey:kGetInterviewedListListCompanyName];
	self.contact = [aDecoder decodeObjectForKey:kGetInterviewedListListContact];
	self.contactPhone = [aDecoder decodeObjectForKey:kGetInterviewedListListContactPhone];
	self.hasFeedback = [[aDecoder decodeObjectForKey:kGetInterviewedListListHasFeedback] integerValue];
	self.interviewAddress = [aDecoder decodeObjectForKey:kGetInterviewedListListInterviewAddress];
	self.interviewConfirmSatus = [[aDecoder decodeObjectForKey:kGetInterviewedListListInterviewConfirmSatus] integerValue];
	self.interviewId = [[aDecoder decodeObjectForKey:kGetInterviewedListListInterviewId] integerValue];
	self.interviewTime = [aDecoder decodeObjectForKey:kGetInterviewedListListInterviewTime];
		self.interviewResult = [aDecoder decodeObjectForKey:kGetInterviewedListListInterviewResult];
	self.logo = [aDecoder decodeObjectForKey:kGetInterviewedListListLogo];
	self.matchScore = [[aDecoder decodeObjectForKey:kGetInterviewedListListMatchScore] floatValue];
	self.nature = [aDecoder decodeObjectForKey:kGetInterviewedListListNature];
	self.positionId = [[aDecoder decodeObjectForKey:kGetInterviewedListListPositionId] integerValue];
	self.positionName = [aDecoder decodeObjectForKey:kGetInterviewedListListPositionName];
	self.releasedInterviewExperience = [[aDecoder decodeObjectForKey:kGetInterviewedListListReleasedInterviewExperience] boolValue];
	self.salaryRange = [aDecoder decodeObjectForKey:kGetInterviewedListListSalaryRange];
	self.skills = [aDecoder decodeObjectForKey:kGetInterviewedListListSkills];
	self.workingLife = [aDecoder decodeObjectForKey:kGetInterviewedListListWorkingLife];
    self.hasVideoAnswer = [[aDecoder decodeObjectForKey:kGetInterviewedListListHasVideoAnswer] integerValue];

	return self;

}

/**
 * Implementation of NSCopying copyWithZone: method
 */
- (instancetype)copyWithZone:(NSZone *)zone
{
	GetInterviewedListList *copy = [GetInterviewedListList new];

	copy.companyAddress = [self.companyAddress copyWithZone:zone];
	copy.companyName = [self.companyName copyWithZone:zone];
	copy.contact = [self.contact copyWithZone:zone];
	copy.contactPhone = [self.contactPhone copyWithZone:zone];
	copy.hasFeedback = self.hasFeedback;
	copy.interviewAddress = [self.interviewAddress copyWithZone:zone];
	copy.interviewConfirmSatus = self.interviewConfirmSatus;
	copy.interviewId = self.interviewId;
	copy.interviewTime = [self.interviewTime copyWithZone:zone];
	copy.interviewResult = [self.interviewResult copyWithZone:zone];
	copy.logo = [self.logo copyWithZone:zone];
	copy.matchScore = self.matchScore;
	copy.nature = [self.nature copyWithZone:zone];
	copy.positionId = self.positionId;
    copy.releasedInterviewExperience = self.releasedInterviewExperience;
	copy.positionName = [self.positionName copyWithZone:zone];
	copy.salaryRange = [self.salaryRange copyWithZone:zone];
	copy.skills = [self.skills copyWithZone:zone];
	copy.workingLife = [self.workingLife copyWithZone:zone];
    copy.hasVideoAnswer = self.hasVideoAnswer;

	return copy;
}
@end
